package outrasolucao;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;


public class Vertice implements Comparable<Vertice> {
	
	private Object valor;
	private Map <Object, Aresta> arestas = new HashMap();
	
	private double menorDistancia = Double.POSITIVE_INFINITY;
	
	private Vertice anterior;
	
	public Vertice(Object valor) {
		this.valor = valor;
	}
	
	public String toString() { 
		return this.valor.toString();
	}
	
	public int compareTo(Vertice vert) {
		return Double.compare(menorDistancia, vert.menorDistancia);
	}
	
	public void addAresta(Vertice destino, Custo custo) {
		arestas.put(destino.valor, new Aresta(this, destino, custo));
	}
	
	public Collection<Aresta> getArestas() {
		return this.arestas.values();		
	}
	
	public Aresta getAresta(Vertice destino) {
		return arestas.get(destino.valor);
	}
	
	public Object getValor() {
		return this.valor;
	}
	
	public double getMenorDistancia() {
		return this.menorDistancia;
	}
	
	public void setMenorDistancia(double distancia) {
		this.menorDistancia = distancia;
	}
	
	public Vertice getAnterior() {
		return anterior;
	} 
	
	public void setAnterior(Vertice vertice) {
		this.anterior = vertice;
	}

}
